#ifndef FGE_SCREENMANAGER_HPP
#define FGE_SCREENMANAGER_HPP

#include <list>

namespace fge
{

class Game;
class GameScreen;

class ScreenManager
{
public:
	ScreenManager(Game *game);
	~ScreenManager();

	void LoadContent();
	void UnloadContent();

	void Update(float deltaSeconds);

	void Draw();

	void AddScreen(GameScreen *gameScreen);

	Game* GetGame() const { return game; }

private:
	void RemoveScreen(GameScreen *gameScreen);

private:
	Game *game;

	std::list<GameScreen*> screens;
	std::list<GameScreen*> screensToUpdate;
};


}

#endif//FGE_SCREENMANAGER_HPP

